iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0
Python

30 天學會用 Python pandas 和 openpyxl 處理 Excel —— 成為用 Python 處理 Excel 檔案的高手系列 第 19

Python 使用 openpyxl 寫入內容到 Excel 儲存格【Python 處理 Excel #19】

  • 分享至 

  • xImage
  •  

本篇文章同步發布於 Python 使用 openpyxl 寫入內容到 Excel 儲存格【Python 處理 Excel #19】

前言

在文章《Python 將 pandas 的 DataFrame 輸出到 Excel 檔案》介紹過如何將 pandas 的 DataFrame 輸出到 Excel 檔案,這篇文章介紹如何單純使用 openpyxl 將內容寫到 Excel 的儲存格中,包含如何寫入 Excel 公式。


複習:如何建立與儲存 Excel 檔案?

寫入資料之前,需要先建立或開啟一個 Excel 檔案,並在操作完畢後儲存這個檔案:

from openpyxl import Workbook

# 建立新的活頁簿
wb = Workbook()

# 取得當前活躍的工作表
ws = wb.active

# 儲存檔案
wb.save('output.xlsx')

解釋

  • Workbook() 建立一個新的 Excel 檔案。
  • wb.active 取得當前活頁簿中活躍的工作表 (通常是第一個工作表)。
  • wb.save() 將活頁簿儲存至指定的檔案路徑。

使用 openpyxl 寫入內容到儲存格

在 openpyxl 中,有兩種主要的方式將內容寫入儲存格中:

  1. 使用索引方式直接寫入。
  2. 使用 append() 方法添加列。

使用索引方式直接寫入

下方程式碼介紹如何使用索引方式寫入:

ws['A1'] = 'Hello'
ws['B2'] = 42

解釋

  • wsWorksheet 物件,代表當前的工作表。
  • 方括號 [] 內的字串 (例如 'A1', 'B2') 是 Excel 的儲存格索引。
  • 'A' 表示第一欄,'B' 表示第二欄,數字表示列號。
  • 賦值操作 = 直接將數據寫入指定的儲存格。

這種方法類似在 Excel 中直接選擇一個儲存格並輸入內容,允許使用者精確控制數據的位置。

使用 append() 方法添加列

另一種方法是使用 append()

ws.append(['order_id', 'total_amount', 'note'])

append() 自動將數據增加到下一個可用的列,這在一次增加大量數據時特別有用。


寫入不同類型的數據

openpyxl 不僅可以寫入文字和數字,也可以寫入日期、時間、布林值等其他數據類型:

import datetime

# 寫入文字
ws['A1'] = 'Hello, World!'

# 寫入數字
ws['A2'] = 123

# 寫入日期
ws['A3'] = datetime.datetime.now()

# 寫入布林值
ws['A4'] = True

寫入 Excel 公式

openpyxl 允許使用者像寫入一般數據一樣寫入 Excel 公式:

ws['B6'] = '=SUM(B2:B4)'

解釋

  • 公式以 = 開頭,就像在 Excel 中手動輸入公式一樣。
  • openpyxl 會將這個字串識別為公式,而不是普通文字。
  • 當 Excel 檔案被打開時,它會呈現這個公式的執行後結果,點擊儲存格能查看公式。

測試用的程式碼案例

結合以上內容,下方是一個更完整的測試用程式碼案例:

from openpyxl import Workbook
import datetime

# 建立新的活頁簿
wb = Workbook()
ws = wb.active

# 寫入不同類型的數據
ws['A1'] = 'Order ID'
ws['B1'] = 'Amount'
ws['C1'] = 'Date'

# 增加數據列
ws.append([1001, 250, datetime.datetime.now()])
ws.append([1002, 500, datetime.datetime.now()])

# 寫入公式
ws['B4'] = '=SUM(B2:B3)'

# 儲存檔案
wb.save('sales_report.xlsx')

在這個案例中我們建立了一個簡單的銷售報告,包含訂單編號、金額和日期,並使用公式計算總金額。


總結

  • openpyxl 提供多種方式寫入 Excel 資料,包括直接索引和 append() 方法。
  • 除了文字和數字,openpyxl 也可以處理日期、布林值等不同類型的數據。
  • 使用 openpyxl 寫入 Excel 公式的方法類似在 Excel 中手動輸入公式,公式以 = 開頭,後面接想要輸入的公式。

本篇文章同步發布於 Python 使用 openpyxl 寫入內容到 Excel 儲存格【Python 處理 Excel #19】


上一篇
Python 使用 openpyxl 將多個 pandas DataFrame 輸出到同一個 Excel 檔案,以及如何刪除 Excel 工作表【Python 處理 Excel #18】
下一篇
Python 使用 openpyxl 設定 Excel 儲存格格式【Python 處理 Excel #20】
系列文
30 天學會用 Python pandas 和 openpyxl 處理 Excel —— 成為用 Python 處理 Excel 檔案的高手27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言